V nasledujúcich príkladoch budeme vyšetrovať priebeh logaritmických funkcií a kresliť ich grafy. Sú to funkcie definované predpisom $$y = \log_a x,$$ kde $a > 0, a \ne 1$ je pevne zvolené reálne číslo. Logaritmické funkcie sú inverzné k exponenciálnym funkciám. Platí totiž $$y = \log_a x \leftrightarrow x = a^y $$ $$y = a^x \leftrightarrow x = \log_a y.$$ Prirodzený logaritmus zapisujeme takto $$\ln x \equiv \log_{\textrm{e}} x.$$ Všimnime si, že platí $$\log_a x = \frac{\ln x}{\ln a}.$$
Pri vyšetrovani priebehu každej takejto funkcie nás tu zaujímajú predovšetkým tieto informácie:
Dokumentácia:
import numpy as np
%matplotlib inline
import matplotlib.pyplot as plt
from maux import *
Vyšetrenie priebehu a nakreslenie grafu funkcie $$y = \ln x.$$ Zostrojenie dotyčnice grafu funkcie v bode $x = 1$.
#### vstupné údaje
def f(X): return np.log(X)
X = np.linspace(0, 8, 8*100+1)
X = X[X > 0]
Y = f(X)
#with np.errstate(divide='ignore'): Y = f(X)
#### obrázok s dvoma diagramami
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2, sharex=True, sharey=True)
fig.set_size_inches(18, 6)
### 1. diagram
init_subplot(ax1)
ax1.set_title(r"Graf funkcie $y = \ln\ x$")
## graf funkcie
ax1.plot(X, Y)
### 2. diagram
init_subplot(ax2)
ax2.spines['left'].set_color('none')
ax2.set_title("Priebeh funkcie")
## intervaly, na ktorých je funkcia monotónna
ax2.plot(X, Y, label="rastúca")
## asymptota bez smernice v bode 0
Ay = np.linspace(-4, 3, 7*10+1)
Ax = np.zeros(len(Ay))
ax2.plot(Ax, Ay, 'k--', lw=1, label="asymptota")
## nulové body
ax2.plot(1, 0, 'ko', label="nulový bod")
## dotyčnica
T = X - 1
XT = ax2.plot(X, T, label="dotyčnica")
## zvyšné nastavenia 2. diagramu
ax2.legend(loc='lower right')
ax2.grid()
### spoločné nastavenie pre oba diagramy
plt.ylim(-4, 3)
### archivácia obrázka
#plt.savefig("ex03_3_1.png")
### samotné zobrazenie
plt.show()
plt.close('all')
Nakreslite do jedného obrázka grafy funkcií $y = e^x$ a $y = \ln x$.
Návod. Použite rovnakú mierku:
>>> fig.set_size_inches(4, 4)
>>> ax.axis('equal')
Nakreslite do jedného obrázka grafy týchto logaritmických funkcií $$y = \log_a x$$ pre $a = \frac{1}{10}, \frac{1}{\textrm{e}}, \frac{1}{2}, 2, \textrm{e}, 10$.
Návod. Použite rovnakú mierku:
>>> ax.axis('equal')
To isté ako v predchadzajúcom príklade, len vykreslenie sa deje pomocou interaktívnych prvkov knižnice ipywidgets
.
Dokumentácia:
#### vstupné údaje
def f(X, a): return np.log(X) / np.log(a)
X = np.linspace(0, 10, 10*20+1)
#### obrázok s grafom logaritmickej funkcie
def plot_log(a):
fig, ax = plt.subplots()
init_subplot(ax)
ax.set_title(r"Graf funkcie $y = \log_a\ x$ pre $a = {:.2g}$".format(a))
with np.errstate(divide='ignore'): ax.plot(X, f(X, a))
ax.set_ylim(-4, 4)
ax.grid()
plt.show()
plt.close('all')
#### interaktívne vykreslenie obrázka
import ipywidgets as widgets
widgets.interact(
plot_log,
a=widgets.SelectionSlider(
options={'1/10': 1/10, '1/e': 1/np.e, '1/2': 1/2, '2': 2, 'e': np.e, '10': 10},
value=np.e,
description="Báza:"));
Vyšetrite priebeh a nakreslite graf funkcie $$y = \ln(x^3)$$ Zostrojte dotyčnicu grafu funkcie v bode $x = \frac{1}{4}$.
Vyšetrite priebeh a nakreslite graf funkcie $$y = \log_{10}(100x^4)$$ Zostrojte dotyčnicu grafu funkcie v bode $x = 1$.